package br.upe.portlet.estagio.service;

import com.liferay.portal.PortalException;
import com.liferay.portal.SystemException;
import com.liferay.portal.kernel.annotation.Propagation;
import com.liferay.portal.kernel.annotation.Transactional;


/**
 * <a href="ProfessorLocalService.java.html"><b><i>View Source</i></b></a>
 *
 * <p>
 * ServiceBuilder generated this class. Modifications in this class will be
 * overwritten the next time is generated.
 * </p>
 *
 * <p>
 * This interface defines the service. The default implementation is
 * <code>br.upe.portlet.estagio.service.impl.ProfessorLocalServiceImpl</code>.
 * Modify methods in that class and rerun ServiceBuilder to populate this class
 * and all other generated classes.
 * </p>
 *
 * <p>
 * This is a local service. Methods of this service will not have security checks based on the propagated JAAS credentials because this service can only be accessed from within the same VM.
 * </p>
 *
 * @author Brian Wing Shun Chan
 *
 * @see br.upe.portlet.estagio.service.ProfessorLocalServiceUtil
 *
 */
@Transactional(rollbackFor =  {
    PortalException.class, SystemException.class}
)
public interface ProfessorLocalService {
    public br.upe.portlet.estagio.model.Professor addProfessor(
        br.upe.portlet.estagio.model.Professor professor)
        throws com.liferay.portal.SystemException;

    public br.upe.portlet.estagio.model.Professor createProfessor(
        java.lang.String matricula);

    public void deleteProfessor(java.lang.String matricula)
        throws com.liferay.portal.SystemException,
            com.liferay.portal.PortalException;

    public void deleteProfessor(
        br.upe.portlet.estagio.model.Professor professor)
        throws com.liferay.portal.SystemException;

    public java.util.List<Object> dynamicQuery(
        com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery)
        throws com.liferay.portal.SystemException;

    public java.util.List<Object> dynamicQuery(
        com.liferay.portal.kernel.dao.orm.DynamicQuery dynamicQuery, int start,
        int end) throws com.liferay.portal.SystemException;

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public br.upe.portlet.estagio.model.Professor getProfessor(
        java.lang.String matricula)
        throws com.liferay.portal.SystemException,
            com.liferay.portal.PortalException;

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public java.util.List<br.upe.portlet.estagio.model.Professor> getProfessors(
        int start, int end) throws com.liferay.portal.SystemException;

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public int getProfessorsCount() throws com.liferay.portal.SystemException;

    public br.upe.portlet.estagio.model.Professor updateProfessor(
        br.upe.portlet.estagio.model.Professor professor)
        throws com.liferay.portal.SystemException;

    public br.upe.portlet.estagio.model.Professor addProfessor(
        long creatorUserId, long companyId, java.lang.String screenName,
        java.lang.String emailAddress, java.util.Locale locale,
        java.lang.String firstName, java.lang.String middleName,
        java.lang.String lastName, boolean male, int birthdayMonth,
        int birthdayDay, int birthdayYear, java.lang.String matricula,
        java.lang.String areaAtuacao, long codigoCurso, boolean disponivel,
        int numeroMaximoOrientandos,
        com.liferay.portal.service.ServiceContext serviceContext,
        java.util.Date createDate)
        throws com.liferay.portal.PortalException,
            com.liferay.portal.SystemException;

    public br.upe.portlet.estagio.model.Professor addProfessor(
        long creatorUserId, long companyId, boolean autoPassword,
        java.lang.String password1, java.lang.String password2,
        boolean autoScreenName, java.lang.String screenName,
        java.lang.String emailAddress, java.lang.String openId,
        java.util.Locale locale, java.lang.String firstName,
        java.lang.String middleName, java.lang.String lastName, int prefixId,
        int suffixId, boolean male, int birthdayMonth, int birthdayDay,
        int birthdayYear, java.lang.String jobTitle, long[] groupIds,
        long[] organizationIds, long[] roleIds, long[] userGroupIds,
        long[][] userGroupRoleIds, boolean sendEmail,
        com.liferay.portal.service.ServiceContext serviceContext,
        java.lang.String matricula, java.lang.String areaAtuacao,
        boolean coordenador, long codigoCurso, boolean disponivel,
        int numeroMaximoOrientandos, java.util.Date createDate)
        throws com.liferay.portal.PortalException,
            com.liferay.portal.SystemException;

    public br.upe.portlet.estagio.model.Professor updateProfessor(
        java.lang.String oldPassword, java.lang.String newPassword1,
        java.lang.String newPassword2, boolean passwordReset,
        java.lang.String reminderQueryQuestion,
        java.lang.String reminderQueryAnswer, java.lang.String screenName,
        java.lang.String emailAddress, java.lang.String openId,
        java.lang.String languageId, java.lang.String timeZoneId,
        java.lang.String greeting, java.lang.String comments,
        java.lang.String firstName, java.lang.String middleName,
        java.lang.String lastName, int prefixId, int suffixId, boolean male,
        int birthdayMonth, int birthdayDay, int birthdayYear,
        java.lang.String smsSn, java.lang.String aimSn,
        java.lang.String facebookSn, java.lang.String icqSn,
        java.lang.String jabberSn, java.lang.String msnSn,
        java.lang.String mySpaceSn, java.lang.String skypeSn,
        java.lang.String twitterSn, java.lang.String ymSn,
        java.lang.String jobTitle, long[] groupIds, long[] organizationIds,
        long[] roleIds,
        java.util.List<com.liferay.portal.model.UserGroupRole> userGroupRoles,
        long[] userGroupIds, long[][] userGroupRoleIds,
        com.liferay.portal.service.ServiceContext serviceContext,
        java.lang.String matricula, java.lang.String areaAtuacao,
        long codigoCurso, boolean disponivel, int numeroMaximoOrientandos,
        java.util.Date modifiedDate)
        throws com.liferay.portal.PortalException,
            com.liferay.portal.SystemException;

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public br.upe.portlet.estagio.model.Professor getProfessorByUser(
        com.liferay.portal.model.User user)
        throws br.upe.portlet.estagio.NoSuchProfessorException,
            com.liferay.portal.SystemException;

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public br.upe.portlet.estagio.model.Professor getProfessorByUserId(
        long userid)
        throws br.upe.portlet.estagio.NoSuchProfessorException,
            com.liferay.portal.SystemException;

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public java.util.List<br.upe.portlet.estagio.model.Professor> getAllProfessoresDisponiveisByCodigoCurso(
        long codigoCurso) throws com.liferay.portal.SystemException;

    @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
    public java.util.List<br.upe.portlet.estagio.model.Professor> getProfessoresDisponiveisByCodigoCurso(
        long codigoCurso, int start, int end)
        throws com.liferay.portal.SystemException;

    public int countProfessoresDisponiveisByCodigoCurso(long codigoCurso)
        throws com.liferay.portal.SystemException;
}
